package com.ht.api.call.func.impl.ad;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.business.ad.PlanHelper;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.Db;
import com.ht.api.db.Entity;

import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

/**
 * 营销计划的前置函数
 * @author asq
 * @createTime 2025年3月1日 14:01:20
 */
@Slf4j
public class AdPlanBeforeFunctionCall implements IFunctionCall {

	@Override
	public String getName() {
		return "营销计划的前置函数";
	}

	@Override
	public JSONObject execute(LoginBean me, JSONObject param, AjaxResult result) {
		// 生成策略
		Entity adCampaign = PlanHelper.generateCampaign(param);
		Db.insert(me.getDataSource(), adCampaign);
		
		// 设置其它数据
        param.set("campaign_id", adCampaign.getMainId());
        param.set("source_id", String.valueOf(me.getLoginId()));
        param.set("source_type", "user");
        param.set("status", 1);

		if (param.getStr("cycle_type").equals("IMMEDIATELY")) { // 如果是立即执行，则将计划时间设置为当前时间
			param.set("fix_time", DateUtil.now());
		}
		
		return JSONUtil.createObj();
	}

}
